#ifndef _REVISE_VEHICLE_PATH_H_
#define _REVISE_VEHICLE_PATH_H_

#include <dispatch_server/global.h>
#include <dispatch_system/vehicle.h>
#include <dispatch_system/moying_map.h>


namespace moying
{
namespace navigation
{

/** 修正机器人路径类
 */
class ReviseVehiclePath
{
public:
    ReviseVehiclePath(const VehiclePtr &vehicle,MoyingMapPtr moying_map);

    /**
     * @brief checkWhetherNeedRevisePath    检测是否需要修正路径
     * @param cur_path_point_index    导航的当前路径点索引
     * @return             成功或失败
     */
    bool checkWhetherNeedRevisePath(int cur_path_point_index);


private:

    MoyingMapPtr moying_map_ = nullptr;
    VehiclePtr vehicle_ = nullptr;
    std::chrono::system_clock::time_point last_check_time_; //上一次检测是否可以修正路径的时间 
    int revise_check_interval_ = 1;             //检测路径是否需要修正的间隔秒数,这里代表的是最小的间隔,并不一定是实际的检测间隔.

};

}
}
#endif //_VEHICLE_MONITOR_H_